// PlotterFactory.h - MARIN MSG Anneke Sicherer-Roetman 20080609

#ifndef PLOTTERFACTORY_H
#define PLOTTERFACTORY_H

class Plotter;
template <class T> class Array2D;
#include <string>

/// factory to create plotters based upon their name
class PlotterFactory
{

public:
    
    static Plotter *create(const char *name, 
                           int xmin,
                           int ymin,
                           int xmax,
                           int ymax,
                           float dx1,
                           float dx2,
                           const Array2D<float> &plot, 
                           const std::string &caption,
                           float fmin, 
                           float fmax);

private:

    /// @cond nevercall
    PlotterFactory();
    PlotterFactory(const PlotterFactory& m);
    virtual ~PlotterFactory();
    PlotterFactory& operator=(const PlotterFactory& m);
    /// @endcond
    
};

#endif // PLOTTERFACTORY_H
